package com.niit.chat.service;

import com.niit.chat.dto.SessionVO;
import com.niit.chat.entity.Session;
import java.util.List;

/**
 * Session服务接口，定义了会话管理的基本操作。
 */
public interface SessionService {
    /**
     * 获取所有会话列表。
     * 
     * @return 会话对象列表
     */
    List<Session> listSessions();

    /**
     * 根据用户ID获取会话列表。
     * 
     * @param userId 用户唯一标识
     * @return 会话对象列表
     */
    List<Session> listSessionsByUser(Long userId);

    /**
     * 根据会话ID获取单个会话对象。
     * 
     * @param id 会话唯一标识
     * @return 会话对象
     */
    Session getSessionById(Long id);

    /**
     * 创建新的会话。
     * 
     * @param session 待创建的会话对象
     */
    void createSession(Session session);

    /**
     * 更新现有会话信息。
     * 
     * @param session 待更新的会话对象
     */
    void updateSession(Session session);

    /**
     * 根据会话ID删除会话。
     * 
     * @param id 待删除会话的唯一标识
     */
    void deleteSession(Long id);

    List<SessionVO> getUserSessions(Long userId);

    SessionVO getSession(Long userId, Long friendId);
}